package cn.edu.imnu.entity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class ResponseData<T> {
    private Integer code;   // 状态码（如 200-成功，400-参数错误，500-服务器错误）
    private String message; // 提示信息
    private T data;         // 具体数据（泛型）

    // 成功响应（带数据）
    public static <T> ResponseData<T> ok(T data) {
        return new ResponseData<>(200, "操作成功", data);
    }

    // 警告/错误响应（无数据）
    public static <T> ResponseData<T> warn(String message) {
        return new ResponseData<>(400, message, null);
    }

    // 异常响应（无数据）
    public static <T> ResponseData<T> error(String message) {
        return new ResponseData<>(500, message, null);
    }
}